Digital signal processing techniques prove useful in a variety of areas, including for example, radio communications systems, radar systems, audio and video equipment, and the like. Digital signal processing can be performed using custom hardware, application specific integrated circuits (ASIC), logic devices, field programmable gate arrays (FPGA), digital signal processor chips, and general microprocessors. Common to digital signal processing systems is that data being processed is represented as digital words, for example, binary data using 16 or 32 bits.
Wider data words allow for higher precision in the data being represented. This increased precision is also referred to as increased dynamic range. Generally, however, increased word widths tend to drive design costs. As word widths increase, the size of memories increases. This in turn necessitates using a larger amount of silicon area, for example, for additional transistors or logic blocks.
Challenges presented by wide data widths are compounded when intermediate results are temporarily placed in a memory for subsequent processing. For example, some signal processing operations include performing partial processing, storing intermediate results temporarily in a memory, and then performing additional processing using the intermediate results at a later time. The movement of large amounts of data back and forth between a signal processing element and a memory can be a bottleneck in the overall signal processing operations, consume large amounts of bandwidth on system busses, and present other challenges for system designers.